Communications processing devices having the function of NAT (“Network Address Translation”) are being used for packet communications. Such communications processing devices are the apparatuses called routers, for instance.
Description is provided first of the NAT and its classifications. The NAT includes a transmission port allocation rule and a receiving filter rule, so that NAT can be classified by a combination of them. The transmission port allocation rule includes Cone Type, in which the same port is allocated on the global side (e.g., WAN side of the Internet or the like) of the NAT when a port and IP address of an information processing device are the same at the local side (e.g., LAN side) of the NAT, without dependent on a destination (i.e., an IP address and port) of packets, Address Sensitive Type, in which a new port is allocated for every destination address of packets, Port Sensitive Type, in which a new port is allocated for every destination port of packets, and Port Reuse Type, in which the same port is allocated as that of the communication source.
The receiving filter rule for examining acceptability of packets delivered from the global side to a port on the local side of the NAT, from which original packets were previously sent, includes Address Sensitive Filter which receives only packets delivered from an address to which the original packet were sent from that port, Port Sensitive Filter which receives only packets delivered from a port to which the original packet were sent from that port, and No Filter wherein there is no filter present. A number of NATs are configured by varying the combination of these transmission port allocation rules and receiving filter rules.
In making communications using the NATs described above, there have been contrived a number of techniques for establishing communications between PC1 and PC2 without routing thought a server, as shown in FIG. 38. Details of such techniques are disclosed, for example, in Japanese Patent Unexamined Publication, No. 2004-180003 (Page 1, FIG. 1, et seq., hereinafter referred to as “patent document 1”), and a literature titled “STUN—Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)” by J. Rosenberg, J. Weinberger, C. Huitema, and R. Mahy, “Online, March 2003, Network Working Group Request for Comments: 3489, (retrieved on 9 Mar. 2005 through the Internet, URL: http://www.ietf.org/rfc/rfc3489.txt, hereinafter referred to as “non-patent document 1”).
When PC1 is to make communications with PC2 through NAT1, PC1 first sends a packet (hereinafter referred to as “bubble packet”) from the local side of NAT1 to the global side, as shown in FIG. 38. The communication can be achieved between PC1 and PC2 when PC2 sends a packet to a port on the global side of NAT1 where the bubble packet passed through. It is therefore important to be able to detect exactly a position of the port of NAT1 where the bubble packet sent by PC1 passed through.
There are cases however, that the position of the port of NAT where the bubble packet passed through cannot be detected accurately even by using the methods described in the above patent literature 1 and non-patent literature 1. In a case of NAT having a transmission port allocation rule of the cone type, there is a method of queuing port numbers of unused ports in the order of FIFO (i.e., first-in first-out basis), and a port number is read from the queue when allocating a new port. In this case, the port numbers are not allocated in a sequential order, and it is therefore not possible to accurately detect the position of the port of NAT where the bubble packet passed through, when using the method disclosed in the above patent literature 1. In the case of NAT having a transmission port allocation rule of the address sensitive type or the port sensitive type, on the other hand, the position of the port of NAT where the bubble packet passed through cannot be detected also by the method disclosed in the above non-patent literature 1.